package com.hoshiicloud.purchase;

import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 *
 * </p>
 *
 * @author campchen
 * @since 2019-05-15
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class Po implements Serializable {
    private static final long serialVersionUID = 1L;

    private Long id;

    /**
     * 公司ID
     */
    private Long companyId;

    /**
     * 平台ID
     */
    private Long platformId;

    /**
     * 店铺ID
     */
    private Long storeId;

    /**
     * 订单类型,1-租户采购 2-租户供应商 3-平台采购 4-平台供应商 5-店铺采购 6-店铺供应商
     */
    private Integer source;

    /**
     * 1-预采单 2-实采单  3-补采单 9-销售单
     */
    private Integer type;

    /**
     * 采购单编号
     */
    private String poNo;

    /**
     * 采购单日期
     */
    private LocalDateTime poDate;

    /**
     * 供应商id
     */
    private Long vendorId;

    /**
     * 供应商仓库
     */
    private Long vendorWhid;

    /**
     * 平台仓库
     */
    private Long platformWhid;

    /**
     * 店铺仓库
     */
    private Long storeWhid;

    /**
     * 订单金额
     */
    private BigDecimal orderAmount;

    /**
     * 商品件数
     */
    private Long orderCount;

    /**
     * 收货人id
     */
    private Long memberId;

    /**
     * 收货地址
     */
    private String address;

    /**
     * 收货人的姓名
     */
    private String consignee;

    /**
     * 收货人的国家region
     */
    private Long country;

    /**
     * 收货人的省份
     */
    private Long province;

    /**
     * 收货人的城市
     */
    private Long city;

    /**
     * 收货人的地区
     */
    private Long district;

    /**
     * 收货人的邮编
     */
    private String zipcode;

    /**
     * 收货人的电话
     */
    private String telphone;

    /**
     * 收货人的手机
     */
    private String mobile;

    /**
     * 收货人的邮箱
     */
    private String email;

    /**
     * 交货日期
     */
    private LocalDateTime deliveryDate;

    /**
     * 订单状态  0-初始下单 2-已确认 3-执行中 4-已完成 5-已作废
     */
    private Integer status;

    /**
     * 结算状态  1-已结算  0-未结算
     */
    private Integer settleStatus;

    /**
     * 结算金额
     */
    private BigDecimal settleAmount;

    /**
     * 制单人
     */
    private String createdBy;

    /**
     * 制单时间
     */
    private LocalDateTime createdTime;

    /**
     * 销售订单id(order_main ID)
     */
    private Long SalesOrderId;
}
